/**
 * 
 */
package modelo.tests;

import junit.framework.TestCase;
import modelo.MetodosNumericos.DiferenciasCentrales;
import modelo.MetodosNumericos.SeccionDoradaParaMaximo;
import modelo.MetodosNumericos.Simpson;
import modelo.excepciones.ErrorDivisionPor0;
import modelo.funciones.Constante;
import modelo.funciones.Funcion;
import modelo.funciones.FuncionCompuesta;
import modelo.funciones.Potencia;
import modelo.operaciones.Division;
/**
 * @author Laura
 *
 */
public class DivisionTest extends TestCase {

	private Funcion funcion;
	
	/* (non-Javadoc)
	 * @see junit.framework.TestCase#setUp()
	 */
	@Override
	protected void setUp() throws Exception {
		super.setUp();
		this.funcion = new FuncionCompuesta(new Potencia(2),new Constante(3),new Division());
		this.funcion.setMetodoParaDerivar(new DiferenciasCentrales());
		this.funcion.setMetodoParaIntegrar(new Simpson());
		this.funcion.setMetodoParaEncontrarMaximo(new SeccionDoradaParaMaximo());
	}

	public void testAplicar(){ 
		double doble = funcion.evaluar(3d);	
		assertTrue(doble == 3d);
	}
	
	public void testLanzarExcepcion(){
		boolean bandera=false;
		try {
			double doble = funcion.evaluar(0d);
		}
		catch (ErrorDivisionPor0 e) {
			assertTrue(bandera == false);}
	}
}
